AWS re:Invent2013参加レポート #30 Lumberjacking on AWS: Cutting Through Logs to Find What Matters
「AWSの木こり」(元ネタはUOでしょうか?)をモチーフに、ログの解析手法をまとめたセッションでした。スライドの概要をレポートします。
まずはジョークのスライド。「未来では、未来が予測できるようになっているかもね」という感じでしょうか。
予測できなかったこととして、コンピュータシステムのコストや性能の比率があります。線形ではなく、指数関数的に増減が見られるメトリックがあり、適切な投資や対応が難しいものもありました。
それらの解決方法として、しばしば人海戦術が取られます。例はかつての産業革命、工業の場合ですが、コンピュータシステムでも同様のことが言えます。例えば、FourSqueare。サービスの利用者が地道に地理情報を登録することで成り立つシステムと言えます。
ログの解析はどうでしょうか。CloudFrontのログを示してみます。
これを解析するにはどうする方法があるでしょうか。例えば、R言語による解析があると思います。大量のメモリが必要であれば、EC2で実行するのもよいでしょう。
効率よく解析を行うのであれば、他のデータの解析と同様、データウェアハウスを利用するのがよいでしょう。アーキテクチャ図の例を示します。
ログの送信
では、ログを送信するにはどのような方法があるでしょうか。CloudFrontのログはS3に保存されます。ただ、そのままだと解析するには勝手がよくないと思います。
たとえば、Fluentd。(柔軟性やスケーラビリティなど絶賛していました)
そして、新サービスのAmazon Kinesis。
ログの集約
ここでは、Amazon ElasticMapReduce(EMR)のS3Distcpを例に挙げます。
それから、Pigの活用。
Pigの監視について
EMRの最適化も重要です。CloudWatchのEMRに関するメトリクスを監視しましょう。
EMRの監視は、他の製品を使うこともできます。Management ConsoleのオプションでGangliaを選択している例です。
パートナーのツールを利用することもできます。EMR Monitoringの例。
また、EMRクラスタノードには、スポットインスタンスを利用するのも良いでしょう。
ここで、ジェフベゾスの有名なフロー図を、データ解析になぞらえて紹介。2枚目のTrafficとsellersが変わっていますね。
ログの解析
ここからは、解析の話へ。RedShiftが出てきました。
データのインポート方法。COPY文の実行、もしくはDataPipelineを利用します。
解析結果の可視化。タブローでの例。
可視化するツールは複数あります。Rの例を示します。
それから、クラスタは利用するときのみ起動するようにすることで、費用を押さえることができます。スナップショットを活用しましょう。
まとめ
紹介してきたログ解析の構成を改めて示します。
ログ解析以外の用途はどうでしょうか。例えばA/Bテストでも同様の手法が利用できます。
最後に知っておいていただきたいのは、統計・解析は必ずしも正しい結論を出してくれるとは限らない、ということです。エイブラバム・ウォールド博士の例を示しておきます。